<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var obj1 = {
        value: 1,
        obj1add: function () {
            var that = this;//obj1add被调用时是方法调用模式，this将指向obj1这个对象，所以这里将that指向this
            var innerfunc = function () {
                //this.value += 1;//这样无效，最终value还是1
                that.value += 1;//内部函数能够访问上层变量that，这样对value的效果将生效
            };
            innerfunc();//函数调用模式，这样函数内的this将指向的是window对象
        }
    }

    obj1.obj1add();//方法调用模式（对象的一个属性值为函数，这叫对象的方法）
    alert(obj1.value);
</script>
</body>
</html>